typedef Success<T> =  Function(T data);
typedef Fail =  Function(String message);